/*
*********************************************************************************************************
*
*	模块名称 : my_foc 工具函数
*	文件名称 : utils.h
*	版    本 : V1.0
*	说    明 : 
*	修改记录 :
*		版本号  日期         作者       说明
*		V1.0    2025-02-06  astronG   正式发布
*
*	Copyright (C), 2018-2030, astronG
*
*********************************************************************************************************
*/

#ifndef _UTILS_H_
#define _UTILS_H_


#define M_PI                                          (3.14159265358f)
#define M_2PI                                         (6.28318530716f)
#define ONE_BY_SQRT3                                  (0.57735026919f)
#define TWO_BY_SQRT3                                  (2.0f * 0.57735026919f)
#define SQRT3_BY_2                                    (0.86602540378f)
#define _3PI_BY_2                                     (4.71238898038f)

#define FOC_MIN(a,b) 				                          (((a)<(b))?(a):(b))
#define FOC_MAX(a,b) 				                          (((a)>(b))?(a):(b))
#define FOC_ABS(x)                                    ((x) > 0 ? (x) : -(x))
#define FOC_CLAMP(x, lower, upper)                    (FOC_MIN(upper, FOC_MAX(x, lower)))
#define FOC_FLOAT_EQU(floatA, floatB)                 ((FOC_ABS((floatA) - (floatB))) < 0.000001f)



/* 提供给其他C文件调用的函数 */
unsigned char CharToHex(unsigned char bChar);
uint16_t calc_crc16(uint8_t *data, uint32_t len);

#endif
